"""
3. Проведите тест гипотезы. Продавец утверждает, что средний вес пачки печенья составляет 200 г.
Из партии извлечена выборка из 10 пачек. Вес каждой пачки составляет:
202, 203, 199, 197, 195, 201, 200, 204, 194, 190.
Известно, что их веса распределены нормально.
Верно ли утверждение продавца, если учитывать, что доверительная вероятность равна 99%? (Провести двусторонний тест.)
"""
import numpy as np
from scipy import stats

# Вес пачек печенья в выборке
weights = np.array([202, 203, 199, 197, 195, 201, 200, 204, 194, 190])

# Исходные данные
sample_mean = np.mean(weights)  # Среднее значение выборки
sample_std = np.std(weights, ddof=1)  # Несмещенное стандартное отклонение выборки
population_mean = 200  # Утверждаемое среднее значение
n = len(weights)  # Размер выборки
confidence_level = 0.99  # Доверительная вероятность

# Расчет t-статистики
t_statistic = (sample_mean - population_mean) / (sample_std / np.sqrt(n))

# Количество степеней свободы
df = n - 1

# Расчет p-значения
p_value = stats.t.sf(np.abs(t_statistic), df) * 2  # Умножаем на 2 для двустороннего теста

# Расчет критического значения t для нашего уровня доверия
t_critical = stats.t.ppf((1 - confidence_level) / 2, df)  # Двусторонний, поэтому делим alpha на 2

# Вывод результатов
print(f"Среднее значение выборки: {sample_mean}")
print(f"t-статистика: {t_statistic}")
print(f"p-значение: {p_value}")
print(f"Критическое значение t: {t_critical}")

# Оценка гипотезы
if p_value < (1 - confidence_level):
    print("Отклоняем нулевую гипотезу: средний вес пачки печенья статистически значимо отличается от 200 г.")
else:
    print("Недостаточно доказательств для отклонения нулевой гипотезы.")
